package club.haomoon.boss.service;

import club.haomoon.boss.validate.article.ArticleCreateValidate;
import club.haomoon.boss.validate.article.ArticleSearchValidate;
import club.haomoon.boss.validate.article.ArticleUpdateValidate;
import club.haomoon.boss.validate.base.PageValidate;
import club.haomoon.boss.vo.article.ArticleDetailVo;
import club.haomoon.boss.vo.article.ArticleListVo;
import club.haomoon.core.common.PageResult;


/**
 * 文章服务接口类
 */
public interface IArticleService {

    /**
     * 文章列表
     * @param pageValidate 分页参数
     * @param searchValidate 搜索参数
     * @return PageResult<ArticleListVo>
     */
    PageResult<ArticleListVo> list(PageValidate pageValidate, ArticleSearchValidate searchValidate);

    /**
     * 文章详情
     * @param id 主键ID
     */
    ArticleDetailVo detail(Integer id);

    /**
     * 文章新增
     * @param createValidate 参数
     */
    void add(ArticleCreateValidate createValidate);

    /**
     * 文章编辑
     * @param updateValidate 参数
     */
    void edit(ArticleUpdateValidate updateValidate);

    /**
     * 文章删除
     * @param id 文章主键
     */
    void del(Integer id);

    /**
     * 文章状态
     * @param id 文章主键
     */
    void change(Integer id);

}
